package com.amsp.oa.oademo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;

@Data
@TableName("leave_adjustment")
@ApiModel(value = "调休申请单", description = "调休申请单信息")
public class LeaveAdjustment {

    @ApiModelProperty(value = "主键ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "工号")
    private String employeeId;

    @ApiModelProperty(value = "姓名")
    private String employeeName;

    @ApiModelProperty(value = "组别")
    private String groupName;

    @ApiModelProperty(value = "岗位")
    private String position;

    @ApiModelProperty(value = "事由")
    private String reason;

    @ApiModelProperty(value = "上班开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime workStartDate;

    @ApiModelProperty(value = "上班结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime workEndDate;

    @ApiModelProperty(value = "休息开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime restStartDate;

    @ApiModelProperty(value = "休息结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime restEndDate;

    @ApiModelProperty(value = "申请人")
    private String applicant;

    @ApiModelProperty(value = "班组复核")
    private String groupReviewer;

    @ApiModelProperty(value = "部门负责人审核")
    private String departmentReviewer;

    @ApiModelProperty(value = "部长/总监签批")
    private String directorApprover;

    @ApiModelProperty(value = "总经理审批")
    private String generalManagerApprover;

    @ApiModelProperty(value = "企业管理部意见")
    private String managementDepartmentOpinion;

    @ApiModelProperty(value = "总裁/董事长核准")
    private String presidentApprover;

    @ApiModelProperty(value = "总裁/董事长核准日期")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private LocalDate presidentApproverDate;

    @ApiModelProperty(value = "状态(pending-待审批, approved-已批准, rejected-已拒绝)")
    private String status;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime createTime;

    @ApiModelProperty(value = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private LocalDateTime updateTime;

    @ApiModelProperty(value = "是否删除(0-未删除，1-已删除)")
    @TableLogic
    private Integer isDeleted;
}